package net.qiqbframework.loadhanding;


import net.qiqbframework.messaging.annotation.MessageHandler;

import java.lang.annotation.*;

/**
 * 加载聚合对象
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@MessageHandler(messageType = LoadMessage.class)
public @interface LoadHandler {


    String routingBizIdentifierNaming() default "";

    /**
     * 如果需要支持批量，payloadType 只能是Collection
     *
     * @return 加载ID对象类
     */
    Class<?> payloadType() default Object.class;

    /**
     * 如果需要支持批量加载，请设置true。同时 payloadType 需要设置 Collection 及子类
     *
     * @return 是否支持批量加载
     */
    boolean supportBatch() default false;

}
